Saeid Safaei Loader Logo Saeid Safaei Loader Animated
لطفا شکیبا باشید
0

سعیدصفایی سعیدصفایی

سعید صفایی
آشنایی با مفهوم Call by Value

Call by Value

فراخوانی به‌وسیله مقدار یعنی زمانی که هنگام فراخوانی یک تابع، مقدار متغیر به تابع ارسال می‌شود و تابع قادر به تغییر آن مقدار نخواهد بود.

Call by Value به یک روش در برنامه‌نویسی گفته می‌شود که در آن هنگام فراخوانی یک تابع، یک کپی از مقدار پارامترهای ورودی به تابع ارسال می‌شود. به عبارت دیگر، در این روش، تغییرات صورت گرفته در داخل تابع تنها روی کپی‌های پارامترها اعمال می‌شود و هیچ تغییری در مقادیر اصلی خارج از تابع ایجاد نمی‌کند. این روش به‌ویژه در زبان‌های برنامه‌نویسی مانند C و Java استفاده می‌شود.

در روش Call by Value، تنها مقدار داده‌ها به تابع ارسال می‌شود، بنابراین هر تغییر در مقدار پارامترهای داخل تابع هیچ تاثیری بر داده‌های اصلی نخواهد داشت. این بدان معناست که پس از پایان اجرای تابع، مقادیر اصلی پارامترها در برنامه بدون تغییر باقی خواهند ماند.

به‌عنوان مثال، در زبان C می‌توان یک تابع تعریف کرد که دو عدد را به‌عنوان ورودی می‌گیرد و مجموع آن‌ها را محاسبه می‌کند. در اینجا، تغییرات در داخل تابع فقط روی کپی مقادیر اعمال می‌شود و هیچ تغییری در مقادیر اصلی ایجاد نمی‌کند:

 #include <stdio.h>  void add(int a, int b) {
a = a + b; // تغییرات در داخل تابع
printf("Sum inside function: %d\n", a); } int main() {
int x = 5, y = 10;
add(x, y); // فراخوانی تابع
printf("Value of x after function call: %d\n", x); // مقادیر اصلی دست نخورده باقی می‌مانند
return 0; }

در این مثال، حتی پس از فراخوانی تابع add و انجام تغییرات در داخل آن، مقدار متغیر x در تابع main دست نخورده باقی می‌ماند. این به این دلیل است که تابع با کپی مقادیر x و y کار کرده و هیچ تغییری در داده‌های اصلی ایجاد نکرده است.

در زبان Python نیز از روش Call by Value استفاده می‌شود. با این حال، در Python، چون تمام داده‌ها به‌صورت اشیاء مدیریت می‌شوند، گاهی ممکن است به نظر برسد که برخی متغیرها به‌طور غیرمستقیم تغییر می‌کنند، به‌ویژه زمانی که با ساختارهای داده‌ای مانند لیست‌ها کار می‌کنیم. به این معنا که تغییرات روی انواع داده‌های تغییرپذیر (مثل لیست‌ها و دیکشنری‌ها) بر داده‌های اصلی تأثیر می‌گذارد، اما برای انواع داده‌های غیرتغییرپذیر (مثل اعداد و رشته‌ها) همچنان از روش Call by Value استفاده می‌شود.

 def add(a, b):
a = a + b # تغییرات در داخل تابع
print("Sum inside function:", a) x = 5 y = 10 add(x, y) print("Value of x after function call:", x) # x تغییری نکرده است

در این مثال، همانطور که در C مشاهده کردیم، مقدار متغیر x پس از فراخوانی تابع تغییر نمی‌کند، زیرا تابع فقط با کپی مقادیر کار می‌کند.

استفاده از Call by Value در برنامه‌نویسی معمولاً برای توابعی که نیازی به تغییر داده‌های اصلی ندارند، بسیار مفید است. این روش باعث می‌شود که داده‌های اصلی بدون تغییر باقی بمانند و کد ایمن‌تر و قابل پیش‌بینی‌تر باشد. برای یادگیری مفاهیم مشابه و مطالعه مقالات بیشتر، می‌توانید از سایت saeidsafaei.ir و مقالات محمد سعید صفایی استفاده کنید.

اسلاید آموزشی

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)
مبانی کامپیوتر و برنامه سازی

در این مبحث، به بررسی انواع توابع، شامل توابع کتابخانه‌ای و توابع ساخت کاربر پرداخته می‌شود و نحوه اعلان، تعریف و استفاده از آن‌ها مورد بحث قرار می‌گیرد. همچنین، به مفاهیم متغیرهای محلی و توابع محلی، تفاوت آرگومان و پارامتر و نحوه عملکرد تابع اصلی پرداخته خواهد شد. هدف این جلسه، آشنایی با نحوه استفاده از توابع در برنامه‌نویسی و درک دقیق ارتباطات میان متغیرها و توابع است.

مقالات آموزشی برای آشنایی با اصطلاحات دنیای کامپیوتر

تبدیل عدد از مبنای دودویی به ده که هر رقم در مبنای دو را با ضرب در 2 به توان جایگاه آن محاسبه می‌کنیم.

کاهش مقدار یک متغیر به طور منظم در هر بار اجرا، که معمولاً در حلقه‌ها برای شمارش معکوس یا تغییر مقدار استفاده می‌شود.

نگهداری پیش‌بینی به استفاده از داده‌ها و الگوریتم‌ها برای پیش‌بینی زمان‌بندی تعمیرات و پیشگیری از خرابی‌های احتمالی اشاره دارد.

حافظه کش یک نوع حافظه سریع است که برای نگهداری داده‌های پرکاربرد و دستورالعمل‌هایی که به طور مکرر استفاده می‌شوند، طراحی شده است. دسترسی به کش سریع‌تر از حافظه اصلی است.

توکن‌های بلاکچین به واحدهای دیجیتالی اطلاق می‌شود که در شبکه‌های بلاکچین برای انجام تراکنش‌ها و ذخیره‌سازی داده‌ها استفاده می‌شوند.

پایان به آخرین مرحله در الگوریتم گفته می‌شود که پس از آن هیچ پردازش یا محاسبات بیشتری انجام نمی‌شود.

نوسانات یا تغییرات در زمان تأخیر انتقال بسته‌های داده در شبکه.

دستگاه‌های متصل به شبکه که داده‌ها را ارسال یا دریافت می‌کنند، مانند کامپیوترها، سرورها، یا سایر تجهیزات شبکه.

حلقه تو در تو به حالتی گفته می‌شود که یک حلقه درون حلقه دیگر قرار دارد. این نوع حلقه‌ها برای انجام عملیات‌های پیچیده‌تر به کار می‌روند.

اضافه بار یا اوورفلو زمانی رخ می‌دهد که سیستم محاسباتی نمی‌تواند عددی بزرگتر از ظرفیت ذخیره‌سازی خود را پردازش کند.

مفهوم VLAN‌ای که ترافیک به آن هدایت می‌شود اما هیچ دستگاه یا موجودیتی در آن وجود ندارد تا ترافیک را پردازش کند.

پهپادهای خودمختار به وسایل نقلیه هوایی بدون سرنشین اطلاق می‌شود که قادر به انجام وظایف خودکار مانند نقشه‌برداری و نظارت هستند.

اطلاعاتی است که به تشریح عملکرد سیستم‌ها، نرم‌افزارها یا سخت‌افزارها می‌پردازد.

نگهداری پیش‌بینی در صنعت به استفاده از داده‌های تاریخچه‌ای و الگوریتم‌ها برای پیش‌بینی خرابی و نیاز به تعمیر در تجهیزات صنعتی اشاره دارد.

سیستم‌های خودآموز به سیستم‌هایی اطلاق می‌شود که می‌توانند به‌طور خودکار از تجربیات و داده‌های جدید یاد بگیرند و بهبود یابند.

رایانه‌های کوچک که می‌توانند تعداد کمی از کاربران را به صورت همزمان پشتیبانی کنند و به طور معمول در شرکت‌ها و سازمان‌های متوسط استفاده می‌شوند.

مکانیزم‌های اجماع بلاکچین به روش‌های مختلفی اطلاق می‌شود که برای تأیید و تأمین یکپارچگی تراکنش‌ها در شبکه‌های بلاکچین استفاده می‌شود.

عملگر افزایش پس‌ از عملگر ()++ است که ابتدا مقدار متغیر را می‌خواند و سپس آن را افزایش می‌دهد.

سلسله مراتب حافظه به توزیع انواع مختلف حافظه بر اساس اندازه، سرعت دسترسی و هزینه مربوط می‌شود. در این سلسله مراتب، حافظه‌های سریع‌تر و گران‌تر در نزدیک‌ترین سطح به پردازنده قرار دارند، مانند ثبات‌ها (Registers)، حافظه نهان (Cache)، و سپس حافظه اصلی (RAM).

محاسبات حساس به موقعیت به توانایی سیستم‌ها برای شناسایی و واکنش به شرایط و موقعیت‌های خاص اشاره دارد.

دروازه منطقی NOT که عملیات معکوس را انجام می‌دهد و ورودی 1 را به 0 و ورودی 0 را به 1 تبدیل می‌کند.

مقدار مشخصی از آدرس‌های IP که به یک شبکه خاص اختصاص داده می‌شود و برای تقسیم‌بندی شبکه‌ها به زیرشبکه‌های مختلف استفاده می‌شود.

بینایی ربات‌ها به فناوری‌هایی اطلاق می‌شود که به ربات‌ها امکان شبیه‌سازی دید انسان را می‌دهند تا محیط اطرافشان را درک کنند.

داده‌های مصنوعی به داده‌هایی گفته می‌شود که به طور مصنوعی و بدون وابستگی به داده‌های واقعی ایجاد می‌شوند.

دسترسی به عناصر آرایه به معنای استفاده از اندیس‌ها برای دستیابی به مقادیر ذخیره‌شده در خانه‌های مختلف آرایه است.

یک نوع NAT که از پورت‌های مختلف برای ترجمه آدرس‌های IP خصوصی به یک آدرس عمومی استفاده می‌کند.

روش تخصیص و مدیریت آدرس‌های IP که محدودیت‌های سیستم کلاس‌های سنتی را حذف می‌کند.

هوش مصنوعی جغرافیایی به استفاده از الگوریتم‌های هوش مصنوعی برای تحلیل و پردازش داده‌های جغرافیایی و مکانی اطلاق می‌شود.

ساختار داده روشی برای سازمان‌دهی و ذخیره داده‌ها در حافظه است که به افزایش کارایی برنامه‌ها کمک می‌کند.

مرتب‌سازی به معنای قرار دادن داده‌ها در یک ترتیب خاص است، مانند مرتب‌سازی اعداد به ترتیب صعودی یا نزولی.

شبکه‌های عصبی مصنوعی شبیه به مغز انسان‌ها طراحی شده‌اند و برای یادگیری از داده‌ها به‌طور خودکار استفاده می‌شوند.

اعلان تابع فرآیند اعلام نام و نوع تابع است که در آن نوع داده بازگشتی و نام پارامترها مشخص می‌شود، اما بدنه آن در این مرحله تعریف نمی‌شود.

روش دسترسی به رسانه که در آن زمان‌بندی برای تقسیم دسترسی به رسانه بین دستگاه‌ها استفاده می‌شود، هر دستگاه یک بازه زمانی برای ارسال داده دارد.

حسگرهای بیومتریک به دستگاه‌هایی اطلاق می‌شود که برای شناسایی ویژگی‌های فیزیکی افراد، مانند اثر انگشت یا شبکیه چشم استفاده می‌شوند.

اطلاعات زیستی به استفاده از داده‌ها و فناوری‌های محاسباتی برای تجزیه و تحلیل اطلاعات زیستی مانند پروتئین‌ها و ژن‌ها اطلاق می‌شود.

بکشید مشاهده بستن پخش
Saeid Safaei Scroll Top
0%